<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="cmd.css" rel="stylesheet" type="text/css">
<title>GRUB4DOS 菜单编写</title>
</head>

<body>
<h1>GRUB4DOS菜单文件编写
</h1>
<p>菜单文件，内容可以分为两个部分：初始化命令组（菜单头）和 菜单项（菜单正文）。</p>
<p><a href="./GRUB4DOS9菜单编写2.htm">按类型分，可以分为预置菜单（或内置菜单）和外置菜单。</a></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;<strong>&nbsp;&nbsp;&nbsp;&nbsp;初始化命令组</strong>（菜单头）用来设置一些全局参数，例如菜单颜色搭配、加载中文支持、默认菜单项、默认等待时间等。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;主要用来执行加载菜单前的初始化操作，通常菜单加载完成后不会直观显示（更改显示效果的命令除外）。</p>
<TABLE align="center" frame=box rules=all>
  <TBODY class="style1">
    <TR>
      <TD><A href="./GRUB4DOS5命令索引.htm#background">background</A></TD>
      <TD width="534">使用 unifont 方式加载中文字库后，设置图形模式下菜单背景色。</TD>
    </TR>
    <TR>
      <TD><A href="./GRUB4DOS5命令索引.htm#color">color</A></TD>
      <TD>使用文本模式显示菜单时，设置菜单颜色。</TD>
    </TR>
    <TR>
      <TD><A href="./GRUB4DOS5命令索引.htm#command">command</A></TD>
      <TD>（也可用在菜单正文中）使用 --set-path 参数设置外部命令所在位置。</TD>
    </TR>
    <TR>
      <TD><A href="./GRUB4DOS5命令索引.htm#debug">debug</A></TD>
      <TD>（也可用在菜单正文中） 设置调试级别。</TD>
    </TR>
    <TR>
      <TD><A href="./GRUB4DOS5命令索引.htm#default">default</A></TD>
      <TD>设置默认菜单项。</TD>
    </TR>
    <TR>
      <TD><A href="./GRUB4DOS5命令索引.htm#fontfile">fontfile</A></TD>
      <TD>使用文本模式显示菜单时，加载中文字库（需中文版grldr）。</TD>
    </TR>
    <TR>
      <TD><A href="./GRUB4DOS5命令索引.htm#foreground">foreground</A></TD>
      <TD>使用 unifont 方式加载中文字库后，设置图形模式下菜单前景色。</TD>
    </TR>
    <TR>
      <TD><A href="./GRUB4DOS5命令索引.htm#gfxmenu">gfxmenu</A></TD>
      <TD>使用gfxmenu菜单（需自备message文件）。</TD>
    </TR>
    <TR>
      <TD><A href="./GRUB4DOS5命令索引.htm#password">password</A></TD>
      <TD>（也可用在菜单正文中） 设置全局密码，设置成功后只有输入正确密码才能使用<a href="./GRUB4DOS6其他相关.htm#a">菜单快捷键</a>。</TD>
    </TR>
    <TR>
      <TD><p><A href="./GRUB4DOS5命令索引.htm#pxe">px</A><A href="./GRUB4DOS3命令索引.htm#pxe">e</A></p></TD>
      <TD>PXE设备启动相关参数。</TD>
    </TR>
    <TR>
      <TD><A href="./GRUB4DOS5命令索引.htm#splashimage">splashimage</A></TD>
      <TD>使用文本模式显示菜单时，加载背景图。</TD>
    </TR>
    <TR>
      <TD><A href="./GRUB4DOS5命令索引.htm#timeout">timeout</A></TD>
      <TD>设置菜单执行前等待时间。</TD>
    </TR>
    <TR>
      <TD><A href="./GRUB4DOS7-6外部命令unifont.htm">unifont</A></TD>
      <TD>使用图形方式加载中文支持时加载中文字库。</TD>
    </TR>
  </TBODY>
</TABLE>
<p>&nbsp;&nbsp;&nbsp;&nbsp;<strong>&nbsp;&nbsp;&nbsp;&nbsp;菜单项</strong>（菜单正文）是用户需要花费大量时间编写的部分，主要为菜单加载完成后可选执行的菜单项。</p>
<blockquote>
  <blockquote>
<p class="style1">每项菜单需要使用 <a href="./GRUB4DOS5命令索引.htm#title">title</a> 命令设置菜单标题，使用 <a href="./GRUB4DOS6其他相关.htm#e">启动敏感命令</a> 结尾，否则不认为这是一项正常（可启动）的菜单，不能通过上方向键或下方向键选中执行（但可以通过左方向键或右方向键或数字键来选中该项菜单）。</p></blockquote>
  <p>其他示例可以参见 <a href="./GRUB4DOS9-1菜单解释_内置.htm">菜单解释</a> 部分</p>
  <p>示例1：</p>
  <blockquote>
    <p class="bat"><span class="Options">titile</span> boot from nt5x<br>
      <span class="Notes">#&nbsp;&nbsp;&nbsp;&nbsp;设置菜单项标题</span></p>
    <p><span class="bat">if not exist </span><strong>/ntldr</strong><span class="bat"> <span class="Options">&amp;&amp;</span> find --set-root </span><strong>/ntldr</strong><span class="bat"><br>
      <span class="Notes">#&nbsp;&nbsp;&nbsp;&nbsp;条件判断：如果当前设备根目录下没有 ntldr 文件，就在所有设备的根目录下查找 ntldr 文件，<br>
      #  &nbsp;&nbsp;&nbsp;&nbsp;查找不到将返回错误信息。</span></span></p>
    <p><span class="bat"><span class="Options">chainloader</span> </span><strong>/ntldr</strong><span class="bat"><br>
      <span class="Notes">#&nbsp;&nbsp;&nbsp;&nbsp;如果存在 ntldr 文件的话就进行加载，chainloader 为启动敏感命令</span></span></p>
    <p class="bat"><span class="Options">boot</span><br>
      <span class="Notes">#&nbsp;&nbsp;&nbsp;&nbsp;boot也为启动敏感命令，通常编写菜单时无需写上，因菜单在执行chainloader 命令后会自动启动，<br>
      # &nbsp;&nbsp;&nbsp;但在命令行下执行chainloader命令后还需使用boot命令确定启动</span></p>
  </blockquote>
  <p>示例2：</p>
  <blockquote>
    <p><span class="bat"></span><span class="Options">titile</span><span class="bat"> this is a test</span><span class="Options"> \n</span><span class="bat"> test<br>
      <span class="Notes">#&nbsp;&nbsp;&nbsp;&nbsp;设置菜单项标题， \n 后为在菜单底部显示的帮助信息</span>  </span></p>
    <p><span class="bat">echo test only !<br>
      <span class="Notes">#&nbsp;&nbsp;&nbsp;&nbsp;在屏幕上输出指定内容： test only !<br>
      #&nbsp;&nbsp;&nbsp;&nbsp;本项菜单没有启动敏感命令，因此不能通过上方向键或下方向键选中执行，<br>
      #&nbsp;&nbsp;&nbsp;&nbsp;这并非毫无用处，很多高级菜单都使用了这项特性</span></span></p>
  </blockquote>
</blockquote>
<p>&nbsp;</p>
<p><br>
</p>
</body>
</html>
